package channel

// LianImgUploadParam 联图图片上传
type LianImgUploadParam struct {
	OutFileUrl string `json:"outFileUrl"` //待上传文件URL
	FileType   string `json:"fileType"`   //类型
	Remarks    string `json:"remarks"`    //备注 图片数据库名称
}

// IncomeMerchantInfoDTO 账户信息
type IncomeMerchantInfoDTO struct {
	Account        string `json:"account" mapstructure:"account"`                         //M 商户手机号（商户登陆账号）唯一，不能重复
	ShopType       string `json:"shopType" mapstructure:"shopType"`                       /*M 店铺类型：1-主店；2-独立结算分店；3-合并结算分店；4-分账接收方总店是企业，分店可以是小微、个体、企业；总店是个体，分店可以是小微、个体；总店是小微，分店只能是小微；小微商户必须为1-主店；*/
	MerchantType   string `json:"merchantType" mapstructure:"merchantType"`               //M 商户类型：1-小微；2-个体；3-企业
	ShopMerchantId string `json:"shopMerchantId,omitempty" mapstructure:"shopMerchantId"` //C 总店商户号（分店必填）
}

// IncomeShopInfoDTO 店铺信息
type IncomeShopInfoDTO struct {
	ShopName        string `json:"shopName" mapstructure:"shopName"`                         //M 门店名称 不能特殊字符（商户简称）
	MccCode         string `json:"mccCode" mapstructure:"mccCode"`                           //M mcc 见【数据字典】
	ProvinceCode    string `json:"provinceCode" mapstructure:"provinceCode"`                 //M 省编码，非港澳台 见【数据字典】
	CityCode        string `json:"cityCode" mapstructure:"cityCode"`                         //M 市编码 见【数据字典】
	AreaCode        string `json:"areaCode" mapstructure:"areaCode"`                         //M 区编码 见【数据字典】
	Address         string `json:"address" mapstructure:"address"`                           //M 详细地址
	DoorPic         string `json:"doorPic,omitempty" mapstructure:"doorPic"`                 //C 门头照(图片id) shopType=4-分账接收方，该参数可为空
	CashierPic      string `json:"cashierPic,omitempty" mapstructure:"cashierPic"`           //C 收银台照(图片id) shopType=4-分账接收方，该参数可为空
	ShopPic         string `json:"shopPic,omitempty" mapstructure:"shopPic"`                 //C 经营场所照(图片id) shopType=4-分账接收方，该参数可为空
	RelationCertPic string `json:"relationCertPic,omitempty" mapstructure:"relationCertPic"` //C 总-门店关系说明函(图片id), 总分店同个营业执照必填
}

// IncomeLegalPersonInfoDTO 法人信息
type IncomeLegalPersonInfoDTO struct {
	IdcardFrontPic  string `json:"idcardFrontPic" mapstructure:"idcardFrontPic"`             //M 法人身份证正面，人头面(图片id)
	IdcardBackPic   string `json:"idcardBackPic" mapstructure:"idcardBackPic"`               //M 法人身份证反面，国徽面(图片id)
	IdcardHoldPic   string `json:"idcardHoldPic,omitempty" mapstructure:"idcardHoldPic"`     //O 手持身份证(图片id) 不传默认使用身份证正面照
	IdcardName      string `json:"idcardName" mapstructure:"idcardName"`                     //M 法人姓名
	IdcardNo        string `json:"idcardNo" mapstructure:"idcardNo"`                         //M 法人身份证号
	IdcardStartDate string `json:"idcardStartDate" mapstructure:"idcardStartDate"`           //M 法人身份证有效期起始日期 格式：yyyy-MM-dd
	IdcardEndDate   string `json:"idcardEndDate" mapstructure:"idcardEndDate"`               //M 法人身份证有效期截止日期 格式：yyyy-MM-dd
	ContactType     string `json:"contactType" mapstructure:"contactType"`                   //M 联系人类型：0-法人；1-委托人；merchantType=1-小微，只能是0-法人；
	ContactName     string `json:"contactName,omitempty" mapstructure:"contactName"`         //C 联系人姓名 merchantType=2-个体，3-企业，该参数必填
	ContactIdcardNo string `json:"contactIdcardNo,omitempty" mapstructure:"contactIdcardNo"` //C 联系人身份证号 merchantType=2-个体，3-企业，该参数必填
	ContactMobile   string `json:"contactMobile" mapstructure:"contactMobile"`               //M 联系人手机号
}

// IncomeLicenseInfoDTO 商户信息 merchantType=2-个体，3-企业，该参数必填
type IncomeLicenseInfoDTO struct {
	LicensePic       string `json:"licensePic" mapstructure:"licensePic"`             //M 营业执照照片(图片id)
	LicenseName      string `json:"licenseName" mapstructure:"licenseName"`           //M 商户全称（营业执照名称）
	LicenseCode      string `json:"licenseCode" mapstructure:"licenseCode"`           //M 营业执照号
	LicenseStartDate string `json:"licenseStartDate" mapstructure:"licenseStartDate"` //M 执照有效期起始日期 格式：yyyy-MM-dd
	LicenseEndDate   string `json:"licenseEndDate" mapstructure:"licenseEndDate"`     //M 执照有效期结束日期 格式：yyyy-MM-dd，永久有效：上传“长期”
	LicenseAddress   string `json:"licenseAddress" mapstructure:"licenseAddress"`     //M 执照地址
}

// IncomeSettleInfoDTO 结算信息
type IncomeSettleInfoDTO struct {
	AccountType            string `json:"accountType" mapstructure:"accountType"`                               //M 结算账户类型：1-法人对私；2-非法人对私；3-法人对公；merchantType=1-小微，该参数必须为1-法人对私
	SettleBankcardFrontPic string `json:"settleBankcardFrontPic" mapstructure:"settleBankcardFrontPic"`         //M 结算卡正面照(图片id)（对公上传开户许可证）
	SettleName             string `json:"settleName" mapstructure:"settleName"`                                 //M 结算户名 法人对私结算：与法人姓名一致； 非法人对私结算：与非法人身份证信息一致； 法人对公结算：与营业执照注册名称一致
	SettleBankcardNo       string `json:"settleBankcardNo" mapstructure:"settleBankcardNo"`                     //M 结算卡号
	SettleBankMobile       string `json:"settleBankMobile" mapstructure:"settleBankMobile"`                     //M 银行预留手机号
	SettleBankName         string `json:"settleBankName,omitempty" mapstructure:"settleBankName"`               //O 开户银行名称
	SettleSubbranch        string `json:"settleSubbranch,omitempty" mapstructure:"settleSubbranch"`             //O 开户支行
	SettleSubbranchCode    string `json:"settleSubbranchCode" mapstructure:"settleSubbranchCode"`               //M 开户支行联行号 见【数据字典】
	SettleCityName         string `json:"settleCityName,omitempty" mapstructure:"settleCityName"`               //O 开户银行所在市名称
	SettleProvinceName     string `json:"settleProvinceName,omitempty" mapstructure:"settleProvinceName"`       //O 开户银行所在省名称
	SettleIdcardFrontPic   string `json:"settleIdcardFrontPic,omitempty" mapstructure:"settleIdcardFrontPic"`   //C 结算人身份证正面照(图片id)（非法人对私必填）
	SettleIdcardBackPic    string `json:"settleIdcardBackPic,omitempty" mapstructure:"settleIdcardBackPic"`     //C 结算人身份证反面照(图片id)（非法人对私必填）
	SettleAuthPic          string `json:"settleAuthPic,omitempty" mapstructure:"settleAuthPic"`                 //C 结算授权书图片(图片id)（非法人对私必填）
	SettleIdcardNo         string `json:"settleIdcardNo,omitempty" mapstructure:"settleIdcardNo"`               //C 结算人身份证号（非法人对私必填）
	SettleIdcardStartDate  string `json:"settleIdcardStartDate,omitempty" mapstructure:"settleIdcardStartDate"` //C 结算人身份证有效期起始日期（非法人对私必填） 格式：yyyy-MM-dd
	SettleIdcardEndDate    string `json:"settleIdcardEndDate,omitempty" mapstructure:"settleIdcardEndDate"`     //C 结算人身份证有效期结束日期（非法人对私必填） 格式：yyyy-MM-dd，永久有效：上传“长期”
}

// LianIncomeParam 商户入驻
// 注：M：must，必须；C：condition，条件必填；O：option，可选；
type LianIncomeParam struct {
	AgentId                  string                   `json:"agentId,omitempty" mapstructure:"agentId"`                           //O 商户所属代理商ID
	OutMerchantId            string                   `json:"outMerchantId" mapstructure:"outMerchantId"`                         //M 外部商户号，唯一
	IncomeMerchantInfoDTO    IncomeMerchantInfoDTO    `json:"incomeMerchantInfoDTO" mapstructure:"incomeMerchantInfoDTO"`         //M 账户信息
	IncomeShopInfoDTO        IncomeShopInfoDTO        `json:"incomeShopInfoDTO" mapstructure:"incomeShopInfoDTO"`                 //M 店铺信息
	IncomeLegalPersonInfoDTO IncomeLegalPersonInfoDTO `json:"incomeLegalPersonInfoDTO" mapstructure:"incomeLegalPersonInfoDTO"`   //M 法人信息
	IncomeLicenseInfoDTO     IncomeLicenseInfoDTO     `json:"incomeLicenseInfoDTO,omitempty" mapstructure:"incomeLicenseInfoDTO"` //C 商户信息 merchantType=2-个体，3-企业，该参数必填
	IncomeSettleInfoDTO      IncomeSettleInfoDTO      `json:"incomeSettleInfoDTO" mapstructure:"incomeSettleInfoDTO"`             //M 结算信息
}

// LianUpdateParam 更新商户信息
type LianUpdateParam struct {
	MerchantId string `json:"merchantId" mapstructure:"agentId"`
	IncomeSettleInfoDTO
}

// LianMerchantAuditQueryParam 商户审核结果查询
type LianMerchantAuditQueryParam struct {
	OutMerchantId string `json:"outMerchantId" mapstructure:"outMerchantId"` //外部商户号
	MerchantId    string `json:"merchantId" mapstructure:"merchantId"`       //商户号
	AuditType     string `json:"auditType" mapstructure:"auditType"`         //审核类型：1-进件审核（入驻+修改）；2-结算信息变更审核
}

// LianDeviceBindParam 设备绑定/解绑
type LianDeviceBindParam struct {
	BindType   string `json:"bindType" mapstructure:"bindType"`     //操作类型：1-设备绑定；2-设备解绑
	MerchantId string `json:"merchantId" mapstructure:"merchantId"` //商户号
	DeviceSn   string `json:"deviceSn" mapstructure:"deviceSn"`     //终端sn/收款码编号
}

// PayUnifyPayParam 统一支付
type PayUnifyPayParam struct {
	//M 商户号
	MerchantId string `json:"merchantId" mapstructure:"merchantId"`
	//M 外部订单号，商户下唯一
	PayOrderNo string `json:"payOrderNo" mapstructure:"payOrderNo"`
	//M 交易金额，单位为元，保留两位小数，取值范围[0.01,100000000]
	TransAmount string `json:"transAmount" mapstructure:"transAmount"`
	//M 交易类型：1-微信；2-支付宝；3-云闪付； 5-聚分期；
	TransType int `json:"transType" mapstructure:"transType"`
	//M 订单类型： 2-native，原生扫码支付（支持支付宝、银联二维码）；3-JSAPI，公众号支付，服务窗支付，H5拉起支付；4-小程序支付（微信）； 支付宝小程序支付payType传3 若transType=5-聚分期，则payType传2
	PayType int `json:"payType" mapstructure:"payType"`
	//C 付款用户id，“微信sub_openid”，“支付宝 user_id”，“云闪付user_id”， 订单类型payType=（3、4），该参数必填
	SubOpenid string `json:"subOpenid,omitempty" mapstructure:"subOpenid"`
	//O 订单标题。示例：Iphone 16G
	Subject string `json:"subject,omitempty" mapstructure:"subject"`
	//O 商品描述 商品或支付单简单描述，格式要求：门店品牌名-城市分店名-实际商品名称 Eg:image-深圳腾大- QQ
	Body string `json:"body,omitempty" mapstructure:"body"`
	//O 支付成功后回调地址，如果不填会用代理商默认的支付回调地址
	NotifyUrl string `json:"notifyUrl,omitempty" mapstructure:"notifyUrl"`
	//  支付宝业务拓展参数
	AlipayExtendParams string `json:"alipayExtendParams,omitempty" mapstructure:"alipayExtendParams"`
	//C 花呗分期期数，仅支持传入3、6、12，分别代表分期期数 示例：3 当且仅当商户直属代理商开启花呗分期权限时支持上传；
	HbFqNum int `json:"hbFqNum,omitempty" mapstructure:"hbFqNum"`
	//O 终端设备号，由代理商自行定义
	DeviceInfo string `json:"deviceInfo,omitempty" mapstructure:"deviceInfo"`
	//O 附加数据，在查询 API 和支付通知中原样返回，可作为自定义参数使用，实际情况下只有支付完成状态才会返回该字段。
	Attach string `json:"attach,omitempty" mapstructure:"attach"`
	//O 备注信息
	Remark string `json:"remark,omitempty" mapstructure:"remark"`
	//O 订单失效时间； 格式：yyyyMMddHHmmss
	TimeExpire string `json:"timeExpire,omitempty" mapstructure:"timeExpire"`
	//O 门店编号（微信支付宝的门店编号），透传至银联。 支付宝：商户门店编号，如：1001 微信：数字、字母、下划线格式 仅支持支付宝、微信、聚分期交易上传 若transType=5-聚分期，当storeName不为空时，storeNo必填
	StoreNo string `json:"storeNo,omitempty" mapstructure:"storeNo"`
	//O 支付宝扫码点餐类型： qr_order（店内扫码点餐）； pre_order（预点到店自提）； home_delivery （外送到家）； direct_payment（直接付款）； other（其它）； 微信/银联扫码点餐类型： food_order
	FoodOrderType string `json:"foodOrderType,omitempty" mapstructure:"foodOrderType"`
	//O 该笔交易需禁用的支付渠道，多个支付渠道需要用英文逗号,分开；注意该字段与enable_pay_channels互斥 示例：pcredit,moneyFund 支付宝支付渠道详见<支付渠道列表> 仅支持支付宝交易上传
	DisablePayChannels string `json:"disablePayChannels,omitempty" mapstructure:"disablePayChannels"`
	//O 该笔交易可用的支付渠道，多个支付渠道需要用英文逗号,分开；注意该字段与disable_pay_channels互斥 示例：pcredit,moneyFund 支付宝支付渠道详见<支付渠道列表> 仅支持支付宝交易上传
	EnablePayChannels string `json:"enablePayChannels,omitempty" mapstructure:"enablePayChannels"`
	/*O
	商品详情
	该字段为单品营销所需上送，微信支付宝单品营销通用字段。
	支付宝上送格式：
	[{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"},{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"}]

	微信上送格式：
	{"goods_detail":[{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"},{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"}]}

	银联云闪付上送格式：{
	  "orderInfo" : {
	    "title" :"日用品",
	    "dctAmount" :"10000",
	    "addnInfo" :"屈臣氏(人民广场)店"
	  },
	  "goodsInfo" : [
	    {"id": "1234567890",
	      "name": "商品 1",
	      "price": 500,
	      "quantity": 1
	    },
	    {
	      "id": "1234567891",
	      "name": "商品 2",
	      "price": 1000,
	      "quantity": 2,
	      "category": "类目 1",
	      "addnInfo": "商品图片 http://www.95516.com/xxx.jpg" } ]
	}
	*/
	GoodsDetail string `json:"goodsDetail,omitempty" mapstructure:"goodsDetail"`
	/*O
	支付宝商户传入业务信息，应用于安全，营销等参数直传场景，格式为json格式。
	"business_params":"{"enable_thirdparty_subsidy":"N"}"
	如果第三⽅贴息活动为全场贴息，默认可贴息，传⼊ N 值则本笔交易禁⽤三⽅贴息；
	如果第三⽅贴息活动为指定订单传参贴息，默认禁⽤贴息，传⼊Y 值则本笔交易启⽤三⽅贴息
	仅支持支付宝交易上传
	*/
	BusinessParams string `json:"businessParams,omitempty" mapstructure:"businessParams"`
	//O 商品标记，订单优惠标记透传给微信，代金券或立减优惠功能的参数 仅支持微信交易上传
	GoodsTag string `json:"goodsTag,omitempty" mapstructure:"goodsTag"`
	//O 微信禁用信用卡该字段传no_credit 仅支持微信交易上传
	LimitPay string `json:"limitPay,omitempty" mapstructure:"limitPay"`
	/*O
	场景信息
	该字段常用于微信线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{"store_info":{"id": "门店ID","name": "名称","area_code": "编码","address": "地址" }}
	仅支持微信交易上传
	*/
	SceneInfo string `json:"sceneInfo,omitempty" mapstructure:"sceneInfo"`
	//O 门店id
	Id string `json:"id,omitempty" mapstructure:"id"`
	//O 门店名称
	Name string `json:"name,omitempty" mapstructure:"name"`
	//O 门店行政区划码
	AreaCode string `json:"areaCode,omitempty" mapstructure:"areaCode"`
	//O 门店详细地址
	Address string `json:"address,omitempty" mapstructure:"address"`
	/*O
	微信公众号ID ；微信公众号支付的公众号id或微信小程序支付的小程序appid;
	该主体需与微信渠道号主体或者商户主体一致，请提前调用【微信参数配置】接口为商户进行配置；
	*/
	SubAppid string `json:"subAppid,omitempty" mapstructure:"subAppid"`
	//C 是否延迟结算订单：0-否；1-是； 仅支持支付宝、微信、云闪付；
	DelayedSettleType int `json:"delayedSettleType,omitempty" mapstructure:"delayedSettleType"`
	/*O
	分账标识；只有分账订单才可调用<分账>接口进行分账
	0-无需分账；1-分账订单；2-余额分账；
	默认0-无需分账；
	仅支持支付宝、微信、云闪付、聚分期；；
	*/
	ShareOrderType int `json:"shareOrderType,omitempty" mapstructure:"shareOrderType"`
	//C 拉起支付方式：0-url链接方式 当transType=（1-微信，2-支付宝）&& payType=3时可上传该参数
	PullUpType int `json:"pullUpType,omitempty" mapstructure:"pullUpType"`
	/*C
	小程序支付成功后的跳转地址
	例: "https://www.baidu.com/"

	微信公众号支付成功后跳转路径须在微信平台点金计划中配置
	若pullUpType=0，则该参数必填
	支持聚分期交易上传该字段，聚分期交易跳转地址说明见本接口文档下方：聚分期回跳地址说明
	*/
	CallbackUrl string `json:"callbackUrl,omitempty" mapstructure:"callbackUrl"`
	//C 公众号、小程序支付过程中用户取消支付或支付失败跳转地址
	CancelUrl string `json:"cancelUrl,omitempty" mapstructure:"cancelUrl"`
}

// PayUnifyPayFenParam 统一支付 -- 聚分期
type PayUnifyPayFenParam struct {
	//C 分期手续费贴息方式： 0-商户不贴息；1-商户贴息（不参加银行营销活动）；2-商户贴息（参加银行营销活动） 若transType=5-聚分期，则该参数必填
	InstallmentSubsidiesType int `json:"installmentSubsidiesType" mapstructure:"installmentSubsidiesType"`
	//O 限定卡号 商户限定卡号支付卡号与卡号掩码仅需上送一个
	AccNo string `json:"accNo" mapstructure:"accNo"`
	/*O
	限定卡号掩码
	商户限定卡号掩码支付，仅在联合登陆场景下使用；
	卡号与卡号掩码仅需上送一个
	*/
	MaskedAccNo string `json:"maskedAccNo" mapstructure:"maskedAccNo"`
	/*O
	若需指定银行分期支付，则填上该值，取值银行代码简称，多个银行代码用&分开
	若上送了卡号或卡号掩码，则无需上送该字段，若上送需与卡号对应银行保持一致
	*/
	SuppBankName string `json:"suppBankName" mapstructure:"suppBankName"`
	/*O
	是否强制
	01：是，强制使用限定期数进行分期支付；
	02：否，默认展示限定信息，用户在支付时可以重选
	不上送该字段默认为01，在上送“限定分期期数limitNum”场景下生效
	*/
	IsForce string `json:"isForce" mapstructure:"isForce"`
	//O 限定分期期数 支持商户指定银联分期期数，支持上送多个期数，例 3&6&9&12
	LimitNum string `json:"limitNum" mapstructure:"limitNum"`
	//O 场景标识 01：实名认证 02：联合登陆 03：限定身份信息
	SceneFlag string `json:"sceneFlag" mapstructure:"sceneFlag"`
	/*O
	身份信息
	场景标识为“01-实名认证”情况下，该参数必填；
	场景标识为 02 或者 03 时可选上送该字段，如若送，支持送掩码证件号码或者不送，姓名必送；
	{certifTp=01&certifId=value&customerNm=value}
	详细说明见本页下文：身份信息（customerInfo）数据元相关子域说明
	*/
	CustomerInfo string `json:"customerInfo" mapstructure:"customerInfo"`
	//O 用户手机号 “联合登陆”场景下，用户手机号必传，仅银联白名单商户支持联合登陆
	Phone string `json:"phone" mapstructure:"phone"`
	//O “联合登陆”场景下上送登陆状态，表明用户在商户侧的登陆状态  0-未登录；1-已登录； 不上送默认为0-未登录
	LoginSt string `json:"loginSt" mapstructure:"loginSt"`
	/*O
	若想在交易完成后获取持卡人付款 token 号，需上送（{trId=value&tokenType=value}）
	详细说明见本页下文：标记化支付信息域数据元相关子域说明
	*/
	TokenPayData string `json:"tokenPayData" mapstructure:"tokenPayData"`
	/*C
	门店名称
	用于前端展示商户门店名称，（需与storeNo 一起上送该字段，不能单独上送），不能超过 15个汉字和字符
	*/
	StoreName string `json:"storeName" mapstructure:"storeName"`
}

// PayUnifyPayResponse 统一支付返回
type PayUnifyPayResponse struct {
	//M 商户号
	MerchantId any `json:"merchantId"`
	//M 代理商订单号，不使用惠商通收银台下单必返
	PayOrderNo any `json:"payOrderNo"`
	//M 联动惠商订单号
	OrderNo any `json:"orderNo"`
	//M 交易金额（单位元）
	TransAmount any `json:"transAmount"`
	//O 商家交易净收入：交易金额-交易手续费
	NetAmount any `json:"netAmount"`
	//M 交易类型：1-微信；2-支付宝；3-云闪付；5-聚分期
	TransType any `json:"transType"`
	//M 支付方式：2-Native；3-JSAPI；4-小程序
	PayType any `json:"payType"`
	//M 订单状态：3-下单成功；4-支付成功；5-支付失败；
	OrderStatus any `json:"orderStatus"`
	//O 支付时间 格式为yyyy-MM-dd HH:mm:ss，如2009年12月25日9点10分10秒表示为2009-12-25 09:10:10
	PayTime any `json:"payTime"`
	//O 交易手续费
	ChargeAmount any `json:"chargeAmount"`
	//O 交易费率
	TransRate any `json:"transRate"`
	//O 付款用户id：“微信openid”、“支付宝user_id”、“云闪付user_id”
	SubOpenid any `json:"subOpenid"`
	//O 实际支付金额（单位：元）
	ActualAmount any `json:"actualAmount"`
	//O 应结金额（单位：元）
	ReceiptAmount any `json:"receiptAmount"`
	//C 下单时的附加数据
	Attach any `json:"attach"`
	//C 订单类型为2-native支付时返回，可直接通过该链接生成二维码扫码支付 若transType=5-聚分期，会返回该字段；
	QrCode any `json:"qrCode"`
	/*C
	代理商可根据返回的Json字符串信息调用官方接口拉起支付
	支付宝示例： mini_pay_info: {"prepayId": "2022032387867766514087897545"}
	微信示例："mini_pay_info": {
	            "timeStamp": "1648008504",
	            "package": "prepay_id=wx230413019506fc1a534100000",
	            "paySign": "CXkVZEPckJ3wenBJ5d39AgAIR+ALTJN7hfIaUl4y0yB4M1q0Wgp7nKfL5Nh3XcDFVmjHBzLVlPaccSoe2e4RIPEeQWZ6PEgGxqaYWWxpLNCMP+\/dc5liT5HFubcRKAi6WloQC0WjK3qtVK4Nm+341BZrL\/0DcbrKB2cumCU8Mdgi49Md7rxUwp9\/keNvxuy1KuTMUIIOyFNQgcBckIPmw8K+4p1rYbA==",
	            "appId": "wx8900husdfg94fa6d",
	            "signType": "RSA",
	            "nonceStr": "f05ca09a5e199b3c4f"
	        }
	*/
	MiniPayInfo any `json:"miniPayInfo"`
	//C 支付链接，transType=3-云闪付时返回；
	JspayUrl any `json:"jspayUrl"`
	//O 是否延迟结算订单：0-否；1-是； 仅支持支付宝、微信、云闪付；
	DelayedSettleType any `json:"delayedSettleType"`
}

// PayBarCodePayParam 条码支付
type PayBarCodePayParam struct {
	//M 商户号
	MerchantId string `json:"merchantId" mapstructure:"merchantId"`
	//M 外部订单号，商户下唯一
	PayOrderNo string `json:"payOrderNo" mapstructure:"payOrderNo"`
	//M 交易金额，单位为元，保留两位小数，取值范围[0.01,100000000]
	TransAmount string `json:"transAmount" mapstructure:"transAmount"`
	//M 支持以下付款码： 微信数字付款码；支付宝数字付款码；云闪付 APP 62 开头付款码；银行 APP 62 开头付款码；
	AuthCode string `json:"authCode"  mapstructure:"authCode"`
	//M 交易类型：1-微信；2-支付宝；3-云闪付； 5-聚分期；
	TransType int `json:"transType" mapstructure:"transType"`
	//M 订单类型： 2-native，原生扫码支付（支持支付宝、银联二维码）；3-JSAPI，公众号支付，服务窗支付，H5拉起支付；4-小程序支付（微信）； 支付宝小程序支付payType传3 若transType=5-聚分期，则payType传2
	PayType int `json:"payType" mapstructure:"payType"`
	//C 付款用户id，“微信sub_openid”，“支付宝 user_id”，“云闪付user_id”， 订单类型payType=（3、4），该参数必填
	SubOpenid string `json:"subOpenid,omitempty" mapstructure:"subOpenid"`
	//O 订单标题。示例：Iphone 16G
	Subject string `json:"subject,omitempty" mapstructure:"subject"`
	//O 商品描述 商品或支付单简单描述，格式要求：门店品牌名-城市分店名-实际商品名称 Eg:image-深圳腾大- QQ
	Body string `json:"body,omitempty" mapstructure:"body"`
	//O 支付成功后回调地址，如果不填会用代理商默认的支付回调地址
	NotifyUrl string `json:"notifyUrl,omitempty" mapstructure:"notifyUrl"`
	//  支付宝业务拓展参数
	AlipayExtendParams string `json:"alipayExtendParams,omitempty" mapstructure:"alipayExtendParams"`
	//C 花呗分期期数，仅支持传入3、6、12，分别代表分期期数 示例：3 当且仅当商户直属代理商开启花呗分期权限时支持上传；
	HbFqNum int `json:"hbFqNum,omitempty" mapstructure:"hbFqNum"`
	//O 终端设备号，由代理商自行定义
	DeviceInfo string `json:"deviceInfo,omitempty" mapstructure:"deviceInfo"`
	//O 附加数据，在查询 API 和支付通知中原样返回，可作为自定义参数使用，实际情况下只有支付完成状态才会返回该字段。
	Attach string `json:"attach,omitempty" mapstructure:"attach"`
	//O 备注信息
	Remark string `json:"remark,omitempty" mapstructure:"remark"`
	//O 订单失效时间； 格式：yyyyMMddHHmmss
	TimeExpire string `json:"timeExpire,omitempty" mapstructure:"timeExpire"`
	//O 门店编号（微信支付宝的门店编号），透传至银联。 支付宝：商户门店编号，如：1001 微信：数字、字母、下划线格式 仅支持支付宝、微信、聚分期交易上传 若transType=5-聚分期，当storeName不为空时，storeNo必填
	StoreNo string `json:"storeNo,omitempty" mapstructure:"storeNo"`
	//O 支付宝扫码点餐类型： qr_order（店内扫码点餐）； pre_order（预点到店自提）； home_delivery （外送到家）； direct_payment（直接付款）； other（其它）； 微信/银联扫码点餐类型： food_order
	FoodOrderType string `json:"foodOrderType,omitempty" mapstructure:"foodOrderType"`
	//O 该笔交易需禁用的支付渠道，多个支付渠道需要用英文逗号,分开；注意该字段与enable_pay_channels互斥 示例：pcredit,moneyFund 支付宝支付渠道详见<支付渠道列表> 仅支持支付宝交易上传
	DisablePayChannels string `json:"disablePayChannels,omitempty" mapstructure:"disablePayChannels"`
	//O 该笔交易可用的支付渠道，多个支付渠道需要用英文逗号,分开；注意该字段与disable_pay_channels互斥 示例：pcredit,moneyFund 支付宝支付渠道详见<支付渠道列表> 仅支持支付宝交易上传
	EnablePayChannels string `json:"enablePayChannels,omitempty" mapstructure:"enablePayChannels"`
	/*O
	商品详情
	该字段为单品营销所需上送，微信支付宝单品营销通用字段。
	支付宝上送格式：
	[{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"},{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"}]

	微信上送格式：
	{"goods_detail":[{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"},{"goods_id":"123456","quantity":1,"price":2,"goods_name":"好"}]}

	银联云闪付上送格式：{
	  "orderInfo" : {
	    "title" :"日用品",
	    "dctAmount" :"10000",
	    "addnInfo" :"屈臣氏(人民广场)店"
	  },
	  "goodsInfo" : [
	    {"id": "1234567890",
	      "name": "商品 1",
	      "price": 500,
	      "quantity": 1
	    },
	    {
	      "id": "1234567891",
	      "name": "商品 2",
	      "price": 1000,
	      "quantity": 2,
	      "category": "类目 1",
	      "addnInfo": "商品图片 http://www.95516.com/xxx.jpg" } ]
	}
	*/
	GoodsDetail string `json:"goodsDetail,omitempty" mapstructure:"goodsDetail"`
	/*O
	支付宝商户传入业务信息，应用于安全，营销等参数直传场景，格式为json格式。
	"business_params":"{"enable_thirdparty_subsidy":"N"}"
	如果第三⽅贴息活动为全场贴息，默认可贴息，传⼊ N 值则本笔交易禁⽤三⽅贴息；
	如果第三⽅贴息活动为指定订单传参贴息，默认禁⽤贴息，传⼊Y 值则本笔交易启⽤三⽅贴息
	仅支持支付宝交易上传
	*/
	BusinessParams string `json:"businessParams,omitempty" mapstructure:"businessParams"`
	//O 商品标记，订单优惠标记透传给微信，代金券或立减优惠功能的参数 仅支持微信交易上传
	GoodsTag string `json:"goodsTag,omitempty" mapstructure:"goodsTag"`
	//O 微信禁用信用卡该字段传no_credit 仅支持微信交易上传
	LimitPay string `json:"limitPay,omitempty" mapstructure:"limitPay"`
	/*O
	场景信息
	该字段常用于微信线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{"store_info":{"id": "门店ID","name": "名称","area_code": "编码","address": "地址" }}
	仅支持微信交易上传
	*/
	SceneInfo string `json:"sceneInfo,omitempty" mapstructure:"sceneInfo"`
	//O 门店id
	Id string `json:"id,omitempty" mapstructure:"id"`
	//O 门店名称
	Name string `json:"name,omitempty" mapstructure:"name"`
	//O 门店行政区划码
	AreaCode string `json:"areaCode,omitempty" mapstructure:"areaCode"`
	//O 门店详细地址
	Address string `json:"address,omitempty" mapstructure:"address"`
	/*O
	微信公众号ID ；微信公众号支付的公众号id或微信小程序支付的小程序appid;
	该主体需与微信渠道号主体或者商户主体一致，请提前调用【微信参数配置】接口为商户进行配置；
	*/
	SubAppid string `json:"subAppid,omitempty" mapstructure:"subAppid"`
	//C 是否延迟结算订单：0-否；1-是； 仅支持支付宝、微信、云闪付；
	DelayedSettleType int `json:"delayedSettleType,omitempty" mapstructure:"delayedSettleType"`
	/*O
	分账标识；只有分账订单才可调用<分账>接口进行分账
	0-无需分账；1-分账订单；2-余额分账；
	默认0-无需分账；
	仅支持支付宝、微信、云闪付、聚分期；；
	*/
	ShareOrderType int `json:"shareOrderType,omitempty" mapstructure:"shareOrderType"`
	//C 拉起支付方式：0-url链接方式 当transType=（1-微信，2-支付宝）&& payType=3时可上传该参数
	PullUpType int `json:"pullUpType,omitempty" mapstructure:"pullUpType"`
	/*C
	小程序支付成功后的跳转地址
	例: "https://www.baidu.com/"

	微信公众号支付成功后跳转路径须在微信平台点金计划中配置
	若pullUpType=0，则该参数必填
	支持聚分期交易上传该字段，聚分期交易跳转地址说明见本接口文档下方：聚分期回跳地址说明
	*/
	CallbackUrl string `json:"callbackUrl,omitempty" mapstructure:"callbackUrl"`
	//C 公众号、小程序支付过程中用户取消支付或支付失败跳转地址
	CancelUrl string `json:"cancelUrl,omitempty" mapstructure:"cancelUrl"`
}

// OrderParam 订单查询
type OrderParam struct {
	//商户号
	MerchantId string `json:"merchantId"`
}

// NotifyUrlParam 支付结果回调
type NotifyUrlParam struct {
	PartnerId interface{} `json:"partnerId"`
	Nonce     interface{} `json:"nonce"`
	Timestamp interface{} `json:"timestamp"`
	Data      interface{} `json:"data"`
	Sign      interface{} `json:"sign"`
}
